
function *test(){
    console.log("111");    
    let input1 = yield 'AAA';   //一个yield相当于一个断点
    console.log('222', input1);
    let input2 = yield 'BBB';
    console.log('333', input2);
    let input3 = yield 'CCC';
    console.log(input3);
}
let a = test();     //将变量a与生成器函数test()关联起来
let res1 = a.next('aaa');   //每一次a.next()相当于执行生成器函数至对应的yield之前。比如第一次a.next()就是执行test()到第一个yield之前。
                            //a.next()的参数是执行后传递回生成器函数的结果，这里将结果赋值给上方的input1，值为aaa。
                            //同时，a.next()的执行结果为一个对象，对象中含有done和value两个key，done表示生成器函数是否完全执行完，value表示本次yield之后的东西，
                            //这里a.next()的结果为{value:'AAA',done:false}。
console.log(res1);
let res2 = a.next('bbb');
console.log(res2);
let res3 = a.next('ccc');
console.log(res3);
let res4 = a.next('ddd');
console.log(res4);